知识点名称:WebView的使用

编号: K9-1

前驱知识点编号:K3-1,K3-2

作者:

讲义内容:

1、Webview自身的常见方法。

loadUrl()方法:指定将要访问的网络url

2、Webview的最常用的子类:

(WebSettings类、WebViewClient类、WebChromeClient类)。

3、Android可以和JavaScript的相互调用。

在平常开发时,WebView与javascript是可以相互调用的,但是我们把一个apk正式发布的时候,需要打一个release包,release包的作用就是把代码做混淆,但是如果一旦混淆之后,如果不加保护,webview与javascript就无法互相调用的。比如说,在javascript中调用一些本地的方法,但是一旦打了混淆包后,没有保护措施的话会发现调用的方法不起作用。

4、WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。本次实验我们要熟悉WebView的使用。

4.1 在应用程序中添加WebView

要向你的应用程序添加一个WebView,只需在活动布局中包含“WebView”元素。例如,这里有一个布局文件,其中WebView填满了屏幕:

要在WebView中加载一个web页面,请使用loadUrl()。

然而,在此之前,你的应用程序必须能够访问Internet。要获得Internet访问权限,请在你的清单文件中请求Internet权限:

4.2 在WebView中使用JavaScript

如果打算在WebView中加载的web页面使用JavaScript,那么必须为WebView启用JavaScript。一旦启用了JavaScript,还可以在应用程序代码和JavaScript代码之间创建接口。

启用JavaScript

将JavaScript代码绑定到Android代码

当开发一个专门为Android应用程序WebView设计的web应用程序时,可以在JavaScript代码和客户端Android代码之间创建接口。例如,JavaScript代码可以在Android代码中调用一个方法来显示一个对话框,而不是使用JavaScript的alert()函数。

可以将这个类绑定到在WebView中运行addJavascriptInterface()的JavaScript,并命名该接口为Android:

这就成功在WebView中运行的JavaScript创建了一个名为Android的界面。此时,web应用程序可以访问WebAppInterface类。例如,这里有一些HTML和JavaScript,当用户单击按钮时,使用新界面创建toast消息。

4.3 处理页面导航

当用户在WebView中单击一个web页面的链接时,默认的行为是Android启动一个处理url的应用程序。通常,默认的web浏览器打开并加载目标URL。但是,可以为WebView覆盖此行为,因此在WebView中打开链接。然后,可以允许用户通过WebView维护的web页面历史进行向后和向前的导航。

要打开用户点击的链接,只需使用setWebViewClient()为你的WebView提供一个WebViewClient。

如果想要更多地控制点击链接的负载,创建自己的WebViewClient,它覆盖了应该使用的方法。

然后为WebView创建一个新的WebViewClient实例:

4.4 浏览网页的历史

当WebView覆盖了URL加载时,它会自动地积累访问过的web页面的历史。可以通过goBack()和goForward()来向后和向前导航。

例如,以下是如何使用设备后退按钮来向后导航:

这样我们就完成了对WebView组件的使用。

results matching ""

    No results matching ""